1. Field of the Invention
This invention is related to the field of digital systems and, more particularly, to reset of digital systems including two or more arbiters for a bus.
2. Description of the Related Art
A bus is frequently used in digital systems to interconnect a variety of devices included in the digital system. Generally, one or more devices are connected to the bus, and use the bus to communicate with other devices connected to the bus. As used herein, the term “agent” refers to a device which is capable of communicating on the bus. The agent may be a requesting agent if the agent is capable of initiating transactions on the bus and may be a responding agent if the agent is capable of responding to a transaction initiated by a requesting agent. A given agent may be capable of being both a requesting agent and a responding agent. Additionally, a “transaction” is a communication on the bus. The transaction may include an address transfer and optionally a data transfer. Transactions may be read transactions (transfers of data from the responding agent to the requesting agent) and write transactions (transfers of data from the requesting agent to the responding agent). Transactions may further include various coherency commands which may or may not involve a transfer of data.
The bus is a shared resource among the agents, and thus a mechanism for determining which agent is permitted to use the bus at any given time is needed. Generally, determining which of several agents is permitted to use the bus (often referred to as “mastering the bus”) is referred to as “arbitration”. An agent desiring to use the bus may signal its request to use the bus, referred to as “arbitrating”. The circuitry for performing arbitration is referred to as an “arbiter”. One or more agents may arbitrate for the bus, and the arbiter determines which of the arbitrating agents is permitted to use the bus. The agent granted use of the bus by the arbiter is referred to as the winner of the arbitration.
Arbitration may be centralized or distributed. In centralized arbitration, all arbitration requests are sent to a central arbiter which provides a grant to one of the agents. In distributed arbitration, each agent includes an arbiter which receives arbitration requests and determines the winner of the arbitration. If the agent corresponding to the arbiter is the winner, the arbiter informs the agent that it has won and that agent uses the bus. Distributed arbitration may reduce the time required from request to grant as compared to centralized arbitration, since the grant may be transmitted to the winning agent locally from the distributed arbiter at the winning agent.
In a distributed arbitration scheme, the distributed arbiters must remain synchronized with each other unless fixed priority is the arbitration policy. If synchronization is not maintained, two or more of the arbiters may signal a grant to their respective agents for the same arbitration. The agents would then simultaneously attempt to perform transactions on the bus. Such a situation is erroneous, and would lead to unpredictable results.
Additionally, it may be desirable to temporarily delay or disable access by one or more agents to the bus. For example, it may be desirable in a multiprocessing system (in which two or more processors are connected to a bus) for one of the processors to be permitted access to the bus while other processors are not permitted access. This may be useful during boot of the system, to allow the processor permitted access to read boot code from a boot read-only memory (ROM) while the other processors are held off.
Even though the agents are temporarily delayed, the arbiters corresponding to the delayed agents must remain synchronized with the other arbiters. Thus, when the agents are subsequently permitted to use the bus, the arbiters corresponding to the agents may participate correctly in the distributed arbitration scheme.